// 获取url中的参数
function getUrlParam(name) {
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
	var r = window.location.search.substr(1).match(reg);
	if(r != null) {
		return unescape(r[2]);
	} else {
		return null;
	}
}
/** 
 * 对Date的扩展，将 Date 转化为指定格式的String 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符， 
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 例子： (new 
 * Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 (new 
 * Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 
 */  
Date.prototype.Format = function(fmt) {  
    var o = {  
        "M+" : this.getMonth() + 1, // 月份  
        "d+" : this.getDate(), // 日  
        "H+" : this.getHours(), // 小时  
        "m+" : this.getMinutes(), // 分  
        "s+" : this.getSeconds(), // 秒  
        "q+" : Math.floor((this.getMonth() + 3) / 3), // 季度  
        "S" : this.getMilliseconds()  
    // 毫秒  
    };  
    if (/(y+)/.test(fmt)) {  
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")  
                .substr(4 - RegExp.$1.length));  
    }  
    for ( var k in o) {  
        if (new RegExp("(" + k + ")").test(fmt)) {  
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])  
                    : (("00" + o[k]).substr(("" + o[k]).length)));  
        }  
    }  
    return fmt;  
}
/**
 * 获取周几
 */
function getDateWeek(date){
	var a = new Array("周日", "周一", "周二", "周三", "周四", "周五", "周六");  
	var week = date.getDay();
	return a[week];  
}
/**
 * 秒转换成 时分秒
 * @param {Object} second
 */
function seconds2Hms(second){
	if(second > 60){
		var h = parseInt(second / 3600);
		var m = parseInt((second - 3600*h) / 60);
		var s = second - 3600*h - 60*m;
		var str = "";
		if(h != 0) str += h + "小时";
		if(m != 0) str += m + "分钟";
		if(s != 0) str += s + "秒";
		return str;
	} else {
		return second + "秒";
	}
}
/**
 * 公司名称简写
 * @param {Object} comp
 */
function companyBaseName(comp) {
	if(comp != null){
		comp = comp.replace("技术", "");
		comp = comp.replace("软件", "");
		comp = comp.replace("开发", "");
		comp = comp.replace("管理", "");
		comp = comp.replace("计算机", "");
		comp = comp.replace("工程", "");
		comp = comp.replace("咨询", "");
		comp = comp.replace("数码", "");
		comp = comp.replace("商贸", "");
		comp = comp.replace("设备", "");
		comp = comp.replace("电脑", "");
		comp = comp.replace("信息", "");
		comp = comp.replace("科技", "");
		comp = comp.replace("网络", "");
		comp = comp.replace("发展", "");
		comp = comp.replace("互联网", "");
		comp = comp.replace("金融", "");
		comp = comp.replace("电子", "");
		comp = comp.replace("股份", "");
		comp = comp.replace("责任", "");
		comp = comp.replace("有限", "");
		comp = comp.replace("公司", "");
	}
	return comp;
}
/**
 * 页面跳转-增加滑动延时处理
 * @param {Object} url
 */
function openWindow(url){
	openWindow(url, {});
}
/**
 * 页面跳转-增加滑动延时处理
 * @param {Object} url
 */
function openWindowById(url, id){
	openWindowById(url, id, {});
}
function openWindowById(url, id, data){
	mui.openWindow({
		id: id,
		url: url,
		extras: data,
		show: {
            aniShow:'pop-in',//参考官方的效果
            duration:300
       	},
       	waiting: {
			autoShow: false
		}
	});
}
/**
 * 页面跳转-增加滑动延时处理
 * @param {Object} url
 * @param {Object} data
 */
function openWindow(url, data){
	mui.openWindow({
		id: url,
		url: url,
		extras: data,
		show: {
            aniShow:'pop-in',//参考官方的效果
            duration:300
        }
//		styles: {
//			popGesture: 'close'
//		},
		,waiting: {
			autoShow: false
		}
	});
}
/**
 * 页面跳转-增加滑动延时处理
 * @param {Object} url
 * @param {Object} data
 */
function openWindowAndId(id, url, data){
	mui.openWindow({
		id: id,
		url: url,
		extras: data,
		show: {
            aniShow:'pop-in',//参考官方的效果
            duration:300
        }
//		styles: {
//			popGesture: 'close'
//		},
		,waiting: {
			autoShow: false
		}
	});
}
/**
 * 根据ID获取存储内容，本地没有数据，则获取远程数据，数据存储格式为json格式字符串
 */
function getStorage(type){
	var value = localStorage.getItem(type);
	//本地没有数据，则获取远程数据
	if(value == null || value.length == 0 || value == "[]" || value == "{}"){
		var url = url_basecode_byType;
		url = url.replace("{type}", type);
		ajax_json_sync(url, {}, "GET", function(data){
			data = JSON.stringify(data);	//转换为json格式字符串
			localStorage.setItem(type, data);
		});
	}
	value = localStorage.getItem(type);
	return value;
}
/**
 * 根据编码、类型  获取编码值
 * @param {Object} type
 * @param {Object} code
 */
function getNameByCodeType(type, code){
	var res = getStorage(type);
	res = eval('(' + res + ')');
	if(res == null){
		return ;
	}
	for(var i=0; i<res.length; i++){
//		console.log(res[i].thename);
		if(res[i].thecode == code){
			return res[i].thename;
		}
	}
	return code;
}
/**
 * select的ID，编码，赋值到select文本框中
 * @param {Object} selectId	文本框ID
 * @param {Object} code		属性编码
 */
function showSelect(selectId, code){
	var res = getStorage(code);
	res = eval('(' + res + ')');
	if(res == null){
		return ;
	}
	for(var i=0; i<res.length; i++){
		var map = res[i];
		var key = map.thecode;
		var value = map.thename;
		var select_html = "<option value='"+key+"'>"+value+"</option>";
		$("#"+selectId).append(select_html);
	}
}
/**
 * 主要用于查询数据
 * @param {Object} url
 * @param {Object} data
 * @param {Object} successD
 */
function ajax_get(url, data, successD){
	ajax_json(url, data, "GET", successD)
}
/**
 * 主要用于新增数据
 * @param {Object} url
 * @param {Object} data
 * @param {Object} successD
 */
function ajax_post(url, data, successD){
	ajax_json(url, data, "POST", successD)
}
/**
 * 主要用于修改数据
 * @param {Object} url
 * @param {Object} data
 * @param {Object} successD
 */
function ajax_put(url, data, successD){
	ajax_json(url, data, "PUT", successD)
}
/**
 * 主要用于删除数据
 * @param {Object} url
 * @param {Object} data
 * @param {Object} successD
 */
function ajax_delete(url, data, successD){
	ajax_json(url, data, "DELETE", successD)
}
function ajax_head(url, data, successD){
	ajax_json(url, data, "HEAD", successD)
}
function ajax_options(url, data, successD){
	ajax_json(url, data, "OPTIONS", successD)
}
function ajax_trace(url, data, successD){
	ajax_json(url, data, "TRACE", successD)
}
function ajax_connect(url, data, successD){
	ajax_json(url, data, "CONNECT", successD)
}

/**
 * 获取远程数据公共处理类
 * @param {Object} url		远程连接URL
 * @param {Object} data		请求参数
 * @param {Object} type		请求类型（默认，GET）
 * @param {Object} successD	回调函数
 * @param {Object} errorD	错误时的回调
 */
function ajax_json(url, data, type, successD, errorD){
	if(type == null || type == ''){
		type = "GET";
	}
//	if(type == "GET"){
//		jq_ajax_jsonp(url, data, type, successD, errorD);
//		return;
//	}
	console.log(url);
	mui.ajax(url,{
		data:data,
		dataType:'json',//服务器返回json格式数据
		type:type,//HTTP请求类型
		timeout:100000,//超时时间设置为10秒；
		success:function(response){
//			//报错验证
//			if(response.code!=0){
//				mui.toast(response.msg);
//				return;
//			}
			successD(response);
		},
		error:function(xhr,type,errorThrown){
			//异常处理；
			console.log(type);
			mui.toast(type);
		}
	});
}
/**
 * 同步获取远程数据公共处理类
 * @param {Object} url		远程连接URL
 * @param {Object} data		请求参数
 * @param {Object} type		请求类型（默认，GET）
 * @param {Object} successD	回调函数
 * @param {Object} errorD	错误时的回调
 */
function ajax_json_sync(url, data, type, successD, errorD){
	if(type == null || type == ''){
		type = "GET";
	}
//	if(type == "GET"){
//		jq_ajax_jsonp(url, data, type, successD, errorD);
//		return;
//	}
	console.log(url);
	mui.ajax(url,{
		data:data,
		async: false,
		dataType:'json',//服务器返回json格式数据
		type:type,//HTTP请求类型
		timeout:100000,//超时时间设置为10秒；
		success:function(response){
			console.log(response.msg);
			//报错验证
			if(response.code!=0){
				mui.toast(response.msg);
				return;
			}
			successD(response.data);
		},
		error:function(xhr,type,errorThrown){
			//异常处理；
			console.log(type);
			mui.toast(type);
		}
	});
}

function jq_ajax_json(url, data, type, successD, errorD){
	$.ajax({
		async: true,
		url: url,
		type: type,
		dataType: 'json',
		//要传递的参数,没有传参时，也一定要写上
		data: data,
		timeout: 100000,
		//返回Json类型
		contentType: "application/json;utf-8",
		//服务器段返回的对象包含name,data属性.
		success: function(response) {
			//报错验证
			if(response.code!=0){
				mui.toast(response.msg);
				return;
			}
			successD(response);
		},
		error: function(jqXHR, textStatus, errorThrown) {
			mui.toast(textStatus);
		}
	});
}
//跨域请求数据
function jq_ajax_jsonp(url, data, type, successD, errorD) {
	$.ajax({
		async: true,
        url:url + "?callback=callBack",   
        dataType:"jsonp",
		type: type,
		//要传递的参数,没有传参时，也一定要写上
		data: data,
		timeout: 100000,
        jsonpCallback:"callBack",
		//返回Json类型
		contentType: "application/json;utf-8",
        success:function(response){
			//报错验证
			if(response.code!=0){
				mui.toast(response.msg);
				return;
			}
            successD(response.data);
        }
	});
}
/**
 * js睡眠
 * @param {Object} numberMillis	毫秒
 */
function sleep(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}
/**
 * 验证手机或电话是否正确
 * @param {Object} tel 号码
 */
function checkTel(tel) {
   var mobile = /^1[3|5|7|8]\d{9}$/ , phone = /^0\d{2,3}-?\d{7,8}$/;
   phone = /^(0\d{2,3}-?)?\d{7,8}(-\d{2,4})?$/;	//验证座机号，并带有分机号
   return mobile.test(tel) || phone.test(tel);
}
/**
 * 验证邮箱是否正确
 * @param {Object} email
 */
function checkEmail(email) {
	var pattern= /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;  
	return pattern.test(email);  
}
/**
 * 处理restFul方式传递url的问题
 */
function todoRestFulUrl(url) {
	if(url != null && url.trim() != "") {
		url = url.replace(/\./g, "@&@");
		return url;
	}
	return "";
}
/**
 * 根据设备类型（手机 或 浏览器）判断事件的方法是 tap 还是 click
 * @param {Object} id
 * @param {Object} functions
 */
function onJQTapOrClick(id, functions){
	if(mui.os.plus) {
		$(id).on("tap", functions);
	} else {
		$(id).on("click", functions);
	}
}
/**
 * 根据设备类型（手机 或 浏览器）判断事件的方法是 tap 还是 click
 * @param {Object} id
 * @param {Object} functions
 */
function onMUITapOrClick(id, a, functions){
	if(mui.os.plus) {
		mui(id).on("tap", a, functions);
	} else {
		mui(id).on("click", a, functions);
	}
}
/**
 * 获取32位UUID
 */
function guid() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
    return v.toString(16);
  });
}